Network Analysis Tool | Alteryx Predictive Tools 道場 Advent Calendar 2018 #24
DI部プリセールスエンジニアの兼本です。
当エントリは『Alteryx Predictive Tools 道場 Advent Calendar』の24日目のエントリです。
さて、本日はクリスマスイブですね。 我が家ではここ数年クリスマスを家族で過ごしていますが、皆様いかがお過ごしでしょうか。
今年の私はクリスマス前の忙しい時間に家族の白い目に見守られながら本エントリを書いていますが、直前に執筆者ランクが1から2に上がったことで、なんとなく頑張った自分へのご褒美をもらえた気持ちになっています。w
クラスメソッド Alteryx Predictive Tools 道場 Advent Calendar 2018 - Qiita
Alteryx Predictive Tools 道場 Advent Calendar | シリーズ | DevelopersIO
前提条件
本シリーズではAlteryx2018.4を使用しています。
どんなサンプル?
Alteryx Designerを起動して、「ヘルプ > サンプルワークフロー > Predictive tool samples > Predictive Analytics > 24.Network Analysis Tool」から開くことができます。
また、本ワークフローを参照するにはAlteryx Predictive Tools with Rがインストールされている必要があります。
Network Analysis Toolとは?
以下は本サンプルワークフローの全体図です。
ここでいうネットワーク図は、サーバやネットワークの構成を示す図ではなく、ソーシャルネットワーク分析でよく使用される、ユーザとユーザの関係性を示す図です。 ソーシャルネットワーク分析について、以下の外部サイトに説明がありましたので、ご参考していただければと思います。
テキスト入力ツール
今回は2つのデータを掛け合わせて、2パターンのネットワーク図を作成しています。 データは映画「インディ・ジョーンズ」の登場人物の関係性を表したものになっています。
左のテキスト入力ツールは、ネットワーク解析ツールのNアンカーに接続されており、ネットワーク内の各ノードを一意に識別する「name」という名前のフィールドを含みます。 今回のサンプルでは、name(登場人物の名前)、group(なんらかのグループ分け)、value(何らかの値、インディが最も数字が大きいので、登場時間とかでしょうか。)を示しています。
右のテキスト入力ツールは、ネットワーク解析ツールのEアンカーに接続されており、こちらには、ノードを識別するために使用する「from」と「to」という名前のフィールドを含みます。 なお、ネットワーク解析ツールでは「from」フィールドと「to」フィールドには、Nアンカーに接続されたデータの「name」フィールドと一致する値が含まれている必要があります。 今回のデータでは、「from」、「to」にそれぞれ登場人物の名前、「weight」にはその関係の重みを示すデータが含まれており、「from」フィールドの人物から「to」フィールドの人物に対してコミュニケーションがあったことを示すデータとなっています。
ネットワーク解析ツール
このサンプルでは、2つのネットワーク解析ツールを使用しています。最初に上のネットワーク解析ツールを確認します。 ワークフローでは以下の赤枠内の部分です。
最初に選択ツールを使用して「group」と「value」のフィールドを除外して「name」のみを残しています。
ネットワーク解析ツールの設定は、以下のようになっています。
この画面では主にネットワーク図のレイアウトや見た目に関する設定を行うようになっており、ネットワーク図を作成するための基礎データは、固定で「Name」、「From」、「To」というフィールド名を使用する必要があるので注意してください。
最初のサンプルでは、ノードサイズは固定でグループ化もしていませんが、ノードのサイズを入力データに含まれるフィールドから設定したり、統計的な中心性(centrality)を元にスケーリングすることも可能です。
ワークフローの実行結果は以下のようになります。
ネットワーク解析ツールの出力は、DアンカーとIアンカーの2種類があり、Dアンカーには入力データをネットワーク解析した結果の各指標が、Iアンカーにはインラタクティブなレポートが出力されています。 Iアンカーのインタラクティブレポートはマウスでノードをドラッグするとポヨポヨ動くので、GIFアニメーションでお楽しみください。w
サンプルではノードの形状を「ドット」にしていますが、ここを変更するとそれぞれ以下のような出力になります。
好みに合わせて、カスタマイズしてみてください。
つづいて、下のネットワーク解析ツールをみてみましょう。こちらも該当部分を赤枠で囲んでいます。
設定は以下のようになっており、ノードサイズとグループについてもそれぞれ設定をしていることがわかります。
実際にワークフローを実行すると以下のようになります。 こちらはIアンカーのインタラクティブレポートの出力結果ですが、ポヨポヨ動くハリソン君をお楽しみください。w
ところで、このネットワーク図では主役のハリソンフォードを中心として登場人物をグループ化しているのですが、イメージを表示する処理は入力側のNアンカーに接続しているフォーミュラツールで行なっています。
「name」フィールドの値が"INDIANA"だったら、変数「image」にハリソンフォードのイメージを含むURLを設定し、さらに変数「shape」に"circularImage"という値を設定しています。(「Name」フィールドが"INDIANA"以外の場合は変数「shape」には"dot"を設定)
実際のところ、この設定に関してはマニュアルには記載ありませんでしたが、ネットワーク図の生成はjavascript ライブラリの vi を使用して対話型フォースダイアグラムを生成しているとマニュアルに記載があり、vi ライブラリの挙動にあわせて変数を設定するテクニックを使用しているようです。 なお、vi ライブラリの詳細については、以下のサイトを参照してください。
また、こちらもオンラインマニュアルで記載されているのですが、このツールはRパッケージの「igraph」を使用してレイアウトを計算しています。 今回は設定をしていませんが、以下のプロパティでレイアウトの変更が可能です。
試しにレイアウトを変更してみたところ、以下のような出力になりました。
- layout.fruchterman.reingold
-
layout.circle
-
layout.reingold.tilford
みなさんも用途やお好みで最適のレイアウトを探してみてください。 サポートするレイアウトの詳細については、以下のサイトが参考になるかと思いますので、こちらもあわせてご参照ください。
まとめ
以上、Network Analysis Toolワークフローのご紹介でした。
さて、参加メンバーにとっては予想以上に辛く厳しい戦いとなった「Alteryx Predictive Tools道場アドベントカレンダー」も明日で最終日となりました! 明日25日目は弊社甲木 洋介による「25.Using the R Tool for Plotting Data」の予定です。 明日もお楽しみに!
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。